Skip to content
All courses
EMB 101
Term 1
4 credits

C Programming Fundamentals

This foundational course covers the core syntax and principles of the C programming language, emphasizing its application in embedded systems engineering. Students will learn data types, control structures, functions, pointers, and memory management, preparing them to write efficient and robust code for hardware interaction. The course focuses on practical coding skills necessary for low-level programming and resource-constrained environments.

Course outline

Lectures, virtual labs, and graded assignments — completed in your browser.

01Introduction to C and Embedded Systemslecture
02Data Types, Variables, and Operatorslecture
03Control Flow: If/Else and Switch Statementslecture
04Loops: While, Do-While, and For Loopslab
05Functions and Program Modularitylecture
06Arrays and Stringslab
07Pointers and Memory Managementlecture
08Structs, Unions, and Enumslecture
09Preprocessor Directives and Header Fileslab
10File I/O and Command-Line Argumentsassignment
11Bitwise Operations and Low-Level Programminglecture
12Dynamic Memory Allocation and Advanced Pointersassignment
13Comprehensive Midterm Reviewlecture
14Final Reviewlecture

Syllabus

### Course Description
This foundational course covers the core syntax and principles of the C programming language, emphasizing its application in embedded systems engineering. Students will learn data types, control structures, functions, pointers, and memory management, preparing them to write efficient and robust code for hardware interaction. The course focuses on practical coding skills necessary for low-level programming and resource-constrained environments.

### Learning Outcomes
Upon successful completion of this course, students will be able to:
*   Master fundamental C data types, operators, and control flow statements to solve programming problems.
*   Develop and implement functions, arrays, and strings for modular program design and data manipulation.
*   Understand and effectively utilize pointers for memory management, direct hardware interaction, and dynamic data structures.
*   Apply C programming principles to design, implement, and test solutions relevant to embedded systems challenges.
*   Debug, test, and document C code for reliability, maintainability, and adherence to coding standards.

### Assessment Breakdown
*   Quizzes: 15%
*   Lab Exercises: 30%
*   Programming Assignments: 25%
*   Midterm Exam: 15%
*   Final Exam: 15%

### Policies
*   **Attendance:** Regular attendance is expected and crucial for success. Active participation in lecture discussions and lab sessions is highly encouraged.
*   **Late Work:** Late assignments will incur a penalty of 10% per day for the first three days. After three days, late work will not be accepted unless prior arrangements have been made with the instructor due to documented extenuating circumstances.
*   **Academic Integrity:** All submitted work must be original and completed individually unless group collaboration is explicitly permitted for a specific assignment. Plagiarism, unauthorized collaboration, or any form of academic dishonesty will result in a zero for the assignment and may lead to further disciplinary action in accordance with college policy.
*   **Disability Services:** Students requiring accommodations due to a disability should contact the Disability Services office to arrange for necessary support and provide official documentation to the instructor.